#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdlib.h>


// 使用方法一： 直接转换成网络字节序
void ip_convert_first(const char *ip) {
    in_addr_t net_addr = inet_addr(ip);
    if (net_addr == INADDR_NONE) {
        perror("fail to inet_addr");
        exit(EXIT_FAILURE);
    }
    printf("net_addr =  %#x\n", net_addr);
    return ;
}
// 方法二
void ip_convert_second(const char *ip) {

    struct in_addr inp;
    int ret = inet_aton(ip, &inp);
    if (ret == 0) {
        perror("fail to inet_aton");
        exit(EXIT_FAILURE);
    }
    printf("inp = %#x\n", inp.s_addr);
    return;
}
int main(int argc, char const *argv[])
{
    if (argc != 2) {
        fprintf(stderr, "Usage: %s ip\n", argv[0]);
        exit(EXIT_FAILURE);
    }
    ip_convert_first(argv[1]);
    return 0;
}
